﻿using Ewell.Interface.Common.Model.Constant;
using Ewell.Interface.Common.Model.GateWay.Dto.Out;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Ewell.Interface.Common.Model.GateWay.GateWayUriInfo
{
    /// <summary>
    /// 门诊就诊管理
    /// </summary>
    public class OutEncManageDubboService : GateWayUri
    {
        public override string url => "dubbo/cc.ewell.his.out.service.inter.dubbo.OutEncManageDubboService";
        /// <summary>
        /// [7-100071-01]挂号预登记
        /// </summary>
        public GateWayMethod outEncounterPreRegist => new OutEncounterPreRegist(url);
        /// <summary>
        /// [7-100074-01]取消预登记
        /// </summary>
        public GateWayMethod outEncounterPreRegistCancel => new OutEncounterPreRegistCancel(url);
        /// <summary>
        /// [7-100074-01]取消预登记
        /// </summary>
        public GateWayMethod queryEncounterByExample => new QueryEncounterByExample(url);
    }

    public class OutEncounterPreRegist : GateWayMethod
    {
        public OutEncounterPreRegist(string baseUrl) : base(baseUrl)
        {
        }

        public override string methodName => "outEncounterPreRegist";

        public override string paramClass => "cc.ewell.his.out.upon.outencmanage.OutEncounterPreRegistRequest";

        public override DubboParamType paramType => DubboParamType.defaultParam;

        public override Type requestParamType => typeof(OutEncounterPreRegistRequest);

        public override Type responseParamType => typeof(List<PreRegisterOutPatientResponse>);

        public override string desc => "[7-100071-01]挂号预登记";
    }

    public class OutEncounterPreRegistCancel : GateWayMethod
    {
        public OutEncounterPreRegistCancel(string baseUrl) : base(baseUrl)
        {
        }

        public override string methodName => "outEncounterPreRegistCancel";

        public override string paramClass => "cc.ewell.his.out.upon.outencmanage.OutEncounterPreRegistCancelRequest";

        public override DubboParamType paramType => DubboParamType.defaultParam;

        public override Type requestParamType => typeof(OutEncounterPreRegistCancelRequest);

        public override Type responseParamType => typeof(object);

        public override string desc => "[7-100074-01]取消预登记";
    }

    public class QueryEncounterByExample : GateWayMethod
    {
        public QueryEncounterByExample(string baseUrl) : base(baseUrl)
        {
        }

        public override string methodName => "queryEncounterByExample";

        public override string paramClass => "cc.ewell.his.out.upon.outencmanage.QueryEncounterByExampleRequest";

        public override DubboParamType paramType => DubboParamType.defaultParam;

        public override Type requestParamType => typeof(QueryEncounterByExampleReq);

        public override Type responseParamType => typeof(object);

        public override string desc => "[7-100077-01]根据条件查询患者挂号记录V2";
    }
}
